/**
 * 映射接口
 *
 * @author Kevin
 * @date 2018-12-11
 */
public interface Map<K, V> {

    /**
     * 添加key-value
     *
     * @param key
     * @param value
     */
    void add(K key, V value);

    /**
     * 根据key删除value
     *
     * @param key
     */
    V remove(K key);

    /**
     * key是否存在
     *
     * @param key
     */
    boolean contains(K key);

    /**
     * 根据key值获取
     *
     * @param key
     * @return
     */
    V get(K key);

    /**
     * 设置key的值
     *
     * @param key
     * @param newValue
     */
    void set(K key, V newValue);

    /**
     * 获取映射的大小
     */
    int getSize();

    /**
     * 是否为空
     */
    boolean isEmpty();

}
